// user.js
const request = require('../../utils/request.js');

Page({
  data: {
    userInfo: {},
    isLogin: false
  },

  onLoad: function() {
    // 检查是否已登录
    this.checkLogin();
  },

  onShow: function() {
    // 页面显示时重新检查登录状态
    this.checkLogin();
  },

  // 检查是否已登录
checkLogin: function() {
  const app = getApp();
  // 检查 userInfo 是否包含必要字段（如 user_id）
  const isLogin = app.globalData.isLogin && app.globalData.userInfo?.user_id; 
  
  this.setData({
    isLogin: isLogin,
    userInfo: app.globalData.userInfo || {}
  });
},

  // 获取用户信息
  onGetUserInfo: function(e) {
    if (e.detail.userInfo) {
      const app = getApp();
      
      // 如果已有code，直接登录
      if (app.globalData.code) {
        app.loginWithCode(app.globalData.code);
        
        // 延迟设置用户信息，等待登录完成
        setTimeout(() => {
          this.setData({
            isLogin: true,
            userInfo: app.globalData.userInfo
          });
          
          // 更新用户信息
          this.updateUserInfo(e.detail.userInfo);
        }, 1000);
      } else {
        // 重新登录
        wx.login({
          success: res => {
            if (res.code) {
              app.globalData.code = res.code;
              app.loginWithCode(res.code);
              
              setTimeout(() => {
                this.setData({
                  isLogin: true,
                  userInfo: app.globalData.userInfo
                });
                
                // 更新用户信息
                this.updateUserInfo(e.detail.userInfo);
              }, 1000);
            }
          }
        });
      }
    }
  },

  // 更新用户信息
  updateUserInfo: function(info) {
    const app = getApp();
    const userId = app.globalData.userInfo.user_id;
    
    if (!userId) return;
  
    // 获取现有用户信息
    const currentUser = app.globalData.userInfo;
    
    // 仅当昵称或头像为空时，用微信信息更新
    const newNickname = currentUser.nickname || info.nickName;
    const newAvatarUrl = currentUser.avatar_url || info.avatarUrl;
    
    request.post('/api/user/update', {
      userId,
      nickname: newNickname, // 若现有昵称不为空，保留原值
      avatarUrl: newAvatarUrl, // 若现有头像不为空，保留原值
      phone: currentUser.phone // 始终保留现有手机号，不更新
    });
  },

  // 跳转到订单列表
  goToOrderList: function(e) {
    if (!this.data.isLogin) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    
    const status = e.currentTarget.dataset.status;
    wx.navigateTo({
      url: `/pages/order-list/order-list?status=${status}`
    });
  },

  // 跳转到地址管理
  goToAddress: function() {
    if (!this.data.isLogin) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    
    wx.navigateTo({
      url: '/pages/address/address'
    });
  },

  // 清空购物车
  clearCart: function() {
    wx.showModal({
      title: '提示',
      content: '确定要清空购物车吗？',
      success: (res) => {
        if (res.confirm) {
          const app = getApp();
          app.globalData.cart = [];
          
          wx.showToast({
            title: '购物车已清空',
            icon: 'success'
          });
        }
      }
    });
  },

  // 联系客服
  contactService: function() {
    wx.makePhoneCall({
      phoneNumber: '123-456-789'
    });
  },

  // 跳转到商家入口
  goToMerchant: function() {
    wx.navigateTo({
      url: '/pages/merchant/login/login'
    });
  },

  // 退出登录
  logout: function() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          const app = getApp();
          app.globalData.isLogin = false;
          app.globalData.userInfo = null;
          
          this.setData({
            isLogin: false,
            userInfo: {}
          });
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
        }
      }
    });
  }
});